﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//1.指针变量是什么，以及解引用操作符
//int main()
//{
//	int a = 20;
//	printf("%d\n", &a);
//	int* p = &a; //此时a是地址，所以p就称为指针变量，指针变量是用来存放地址的
//	//此时的int指的是：p指向的对象是int，而“*”指的是p是指针变量
//	*p = 100;//此时*p表示解引用操作符，即通过p里面存放的地址找到a的值
//	printf("%d", a);
//	return 0;
// }

//2.指针变量的大小
//int main()
//{
//	int a = 10;
//	int* pa = &a;
//	printf("%d\n", sizeof(pa));
//	printf("%d\n", sizeof(int*));
//	printf("%p\n", pa);
//	return 0;
//}


//3.指针的解引⽤
//int main()
//{
//	int a = 0x11223344;
//	int* pa = &a;
//	*pa = 0;
//	return 0;
//}


//4.指针+-整数
//int main()
//{
//	int a = 10;
//
//	int* pa = &a;
//	char* pc = &a;
//
//	printf("pa   =  %p\n", pa);
//	printf("pa + 1  =  %p\n", pa + 1);
//
//	printf("pc   =  %p\n", pc);
//	printf("pc + 1  =  %p\n", pc + 1);
//	return 0;
//}


//5. void* 指针的学习
//int main()
//{
//	int a = 10;
//	int* pa = &a;
//	/*char* pc = &a;*/
//	void* pc = &a;
//	double b = 3.14;
//	void* pv = &b;
//	return 0;
//}


//const修饰指针变量 
int main()
{
	const int n = 10;//n是变量,被const修饰之后，虽然不可修改，但是它仍然是变量
	printf("%d\n", n);
	int* p  = &n;
	*p = 20;
	printf("%d", n);
	return 0;
}